return {
  "monaqa/dial.nvim",
  recommended = true,
  desc = "Increment and decrement numbers, dates, and more",
  keys = {
    { "<C-a>", "<Plug>(dial-increment)", noremap = true, mode = { "n", "v" }, desc = "dial.nvim: increment" },
    { "<C-x>", "<Plug>(dial-decrement)", noremap = true, mode = { "n", "v" }, desc = "dial.nvim: decrement" },
  },
  config = function()
    local augend = require("dial.augend")

    local function add_constant(elements)
      return augend.constant.new({
        elements = elements,
        cyclic = true,
        word = true,
      })
    end

    require("dial.config").augends:register_group({
      default = {
        augend.integer.alias.decimal,
        augend.integer.alias.hex,
        augend.integer.alias.binary,
        augend.date.alias["%Y/%m/%d"],
        augend.date.alias["%H:%M"],
        augend.constant.alias.bool,
        add_constant({ "and", "or" }),
        add_constant({ "TRUE", "FALSE" }),
        add_constant({ "True", "False" }),
        add_constant({ "enable", "disable" }),
        add_constant({ "ON", "OFF" }),
        add_constant({ "On", "Off" }),
        add_constant({ "&&", "||" }),
        add_constant({ "GPIO_PIN_RESET", "GPIO_PIN_SET" }),
        add_constant({
          "zero",
          "one",
          "two",
          "three",
          "four",
          "five",
          "six",
          "seven",
          "eight",
          "nine",
          "ten",
          "eleven",
          "twelve",
        }),
        add_constant({
          "GPIOA",
          "GPIOB",
          "GPIOC",
          "GPIOD",
          "GPIOE",
          "GPIOF",
          "GPIOG",
          "GPIOH",
        }),
      },
    })
  end,
}
